// Integer type

inline int *t_int_int(int i)
{
    int *ip = malloc(sizeof(int));
    *ip = i;
    return ip;
}

inline int *t_int_op_plus_int_int(int *l, int *r)
{
    int *ip = malloc(sizeof(int));
    *ip = *l + *r;
    return ip;
}

inline int *t_int_op_minus_int_int(int *l, int *r)
{
    int *ip = malloc(sizeof(int));
    *ip = *l - *r;
    return ip;
}

inline int *t_int_op_divid_int_int(int *l, int *r)
{
    int *ip = malloc(sizeof(int));
    *ip = *l / *r;
    return ip;
}

inline int *t_int_op_multi_int_int(int *l, int *r)
{
    int *ip = malloc(sizeof(int));
    *ip = *l * *r;
    return ip;
}

// Character type

inline char *t_int_char(char i)
{
    char *ip = malloc(sizeof(char));
    *ip = i;
    return ip;
}

inline char *t_int_op_plus_char_char(char *l, char *r)
{
    char *ip = malloc(sizeof(char));
    *ip = *l + *r;
    return ip;
}

inline char *t_int_op_minus_char_char(char *l, char *r)
{
    char *ip = malloc(sizeof(char));
    *ip = *l - *r;
    return ip;
}

inline char *t_int_op_divid_char_char(char *l, char *r)
{
    char *ip = malloc(sizeof(char));
    *ip = *l / *r;
    return ip;
}

inline char *t_int_op_multi_char_char(char *l, char *r)
{
    char *ip = malloc(sizeof(char));
    *ip = *l * *r;
    return ip;
}

